[英]asp.net identity multipe user login
嗨,我想知道是否可以使用 asp.net 身份在同一个 Web 应用程序中为两个不同的站点提供多个登录页面
例如,有管理员登录页面和普通用户登录页面。 一旦用户登录到管理员。 用户还允许在不注销管理站点的情况下再次登录到普通用户页面。 顺便说一句,用户名会有两个不同
有谁知道该怎么做? 这是对 asp.net 身份的限制,在整个 asp.net 中只允许一个登录页面吗?
谢谢,
迟到但可能会帮助某人。 根据对类似问题的Pinpoint Answer ,您可以在 Startup 类中使用自定义执行以下操作:
using System;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin;
using Microsoft.Owin.Security.Cookies;
using Owin;
using Microsoft.AspNet.Identity;
public partial class Startup {
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
// Basic for site guest
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
LogoutPath = new PathString("/Account/Logout"),
Provider = new CookieAuthenticationProvider {
OnApplyRedirect = RedirectIfAdmin,
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
}
private static void RedirectIfAdmin(CookieApplyRedirectContext context)
{
// If Url contains
Uri absoluteUri;
if (Uri.TryCreate(context.RedirectUri, UriKind.Absolute, out absoluteUri))
{
string path = context.Request.PathBase + context.Request.Path + context.Request.QueryString;
if (path.Contains("/administration")) {
context.RedirectUri = "/administration/login.aspx" +
new QueryString(context.Options.ReturnUrlParameter, context.Request.Uri.AbsoluteUri);
}
}
context.Response.Redirect(context.RedirectUri);
}
如果您想使用管理员帐户登录并下次使用用户帐户登录,您可以使用其他浏览器或私人模式访问该网站。 我不知道你想做什么,但如果只是为了测试,你可以这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.