asp.net-identity – 为什么一个站点的ASP.NET身份登录可以在同
我创建一个全新的Web应用程序说“WebApplication1” – WebForms与身份验证设置为个人用户帐户。我不会在自动生成的代码模板中添加一行代码。我运行应用程序并注册一个用户“User1”并登录 – 工作正常。
现在我创建另一个Web应用程序“WebApplication2” – 与设置为个人用户帐户的身份验证相同的WebForms。再次没有代码,我运行应用程序。现在我创建另一个用户说“User2” – 工作正常。 当两个应用程序同时运行时,问题开始。 Context.User.Identity是如何被共享的? 代码是一样的 – public static void SignIn(UserManager manager,ApplicationUser user,bool isPersistent){ IAuthenticationManager authenticationManager = HttpContext.Current.GetOwinContext().Authentication; authenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); var identity = manager.CreateIdentity(user,DefaultAuthenticationTypes.ApplicationCookie); authenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent },identity); } 我确实缺少关于ASP.Net Identity如何工作的一些基本知识,请帮助我。 提前致谢。 解决方法
如果您的服务器配置为使用Cookie身份验证,则服务器将向浏览器返回Cookie,其中包含有关用户的加密和签名的声明。
该cookie默认名为:.AspNet.ApplicationCookie。 此Cookie将存储在您的浏览器中,直到它过期(默认14天并滑动到期),或者您明确退出删除该cookie。 如果您打开另一个浏览器类型的选项卡或窗口,则在登录后,它也将具有相同的cookie,并在将请求发送到您的两个网站时传递。 如果两个站点被配置为查找相同的cookie名称,他们将看到它们,并且能够在认证cookie共享相同的机器时解密认证cookie,并且因此能够由服务器用于加密/解密并签名的机器密钥曲奇饼。 Cookie中没有任何内容属于同一服务器中的哪个站点,因此存储在WebApplication1网站中的“User1”声明将被视为在WebApplication2上进行身份验证。 如果您在两个Web应用程序中设置了不同的CookieName,则它们将不会使用相同的身份验证cookie,因此在一个站点中进行身份验证的用户将不会在另一个站点上进行身份验证。 您可以在Startup.Auth.cs中设置CookieName,如下所示: public partial class Startup { // For more information on configuring authentication,please visit http://go.microsoft.com/fwlink/?LinkId=301864 public void ConfigureAuth(IAppBuilder app) { // Enable the application to use a cookie to store information for the signed in user app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,LoginPath = new PathString("/Account/Login"),CookieName = "MyCookieName",}); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC应用程序中的“坏二进制签名”
- 多类选择器
- asp.net – WebForms中的强类型容器
- asp.net-mvc – 在Azure中启用自定义错误
- asp.net – 对绑定到自定义通用对象列表的GridView进行排序
- asp.net-mvc-3 – Razor视图类型不继承自’System.Web.WebP
- 通过几个Hello World感受.NET Core全新的开发体验
- asp.net-mvc – 在ASP.Net MVC3的Razor视图中将值传递给HRE
- asp.net – 允许 – (破折号)在正则表达式中
- asp.net-mvc – 在路由路径中公开属于MVC应用程序中的区域的
- asp.net-mvc – WebApi和Controller overkill
- ASP.net C#一个响应对象上的多个文档
- asp.net-mvc-3 – MemoryCache对象和负载均衡
- asp.net-mvc-3 – 在MVC应用程序中将配置设置注入
- 使用Lucene.NET实现简单的站内搜索
- asp.net-mvc – MVC4 HTML TextBox在修改ViewMod
- asp.net-mvc – 通过programmming导入Ms Access数
- asp.net-mvc – ASP.NET MVC Session vs Global
- ASP.NET新手:Webforms与MVC2
- asp.net – 在jQuery中捕获异常