- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个新的 MVC 4 网站并且我已经设置了 SimpleMembership。我还创建了一个继承自 RolePrincipal 的 CustomPrincipal,并有一个名为 UserInfo 的附加属性,其中包含有关用户的附加信息,例如 LastName、FirstName 和 IsActive。这一切都通过 FormsAuthenticationTicket userData 属性存储在 cookie 中。
我的问题如下。假设我有一个管理页面,管理员用户可以在其中禁用其他用户的帐户 - 将 IsActive 属性设置为 false。假设同时被禁用的用户实际上当前已登录。如果他的访问权限被拒绝,我不希望该用户能够继续浏览该站点。
我怎样才能杀死他的 session 意味着破坏他的 FormsAuthentication cookie?这是正确的做法还是我遗漏了 SimpleMembership 中的其他内容?完成这项任务的正确途径是什么?任何建议将不胜感激...
最佳答案
我建议结合使用 Application_AuthenticateRequest 和 ASP.NET 缓存,如下所示:
1) 当一个用户被删除时,将用户 ID 写入 ASP.NET Cache 中,它可以在那里停留一段有限的时间(可能是一天):
string cacheKey = "RecentlyDeletedUserId" + userId;
Cache.Add(
cacheKey,
true,
null,
DateTime.Now.AddDays(1),
null,
CacheItemPriority.Normal,
null
);
Application_AuthenticateRequest
处理程序,在服务器成功接收到表单例份验证票后为每个请求触发。在此处理程序中,您发出一个廉价的内存缓存请求,以查看该用户是否在最近删除的用户列表中。如果是,您将它们注销并将它们重定向到登录页面。
protected void Application_AuthenticateRequest(object sender, EventArgs e) {
string cacheKey = "RecentlyDeletedUserId" + userId;
if (Cache[cacheKey] != null)
{
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
}
}
protected void Application_AuthenticateRequest(object sender, EventArgs e) {
string cacheKey = "RecentlyDeletedUserId" + userId;
if (Cache[cacheKey] != null)
{
IPrincipal anonymousPrincipal = new GenericPrincipal(new GenericIdentity(String.Empty), null);
Thread.CurrentPrincipal = anonymousPrincipal;
HttpContext.Current.User = anonymousPrincipal;
}
}
关于.net - SimpleMembership 会取消用户身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14792863/
我正在制作一个新的 MVC 4 网站并且我已经设置了 SimpleMembership。我还创建了一个继承自 RolePrincipal 的 CustomPrincipal,并有一个名为 UserIn
看完这篇不错BLOG关于向 UserProfile 表添加自定义数据,我想将其更改为 UserProfile 表存储默认数据的方式 + 另一个存储所有附加信息的类。 在使用 Internet 应用程序
我在 MVC4 应用程序中使用 SimpleMembership,需要用户能够更改自己的用户名。 我有这个功能,所以当用户更改他们的用户名时它可以工作。但是,当调用诸如 Roles.IsUserInr
Jon Galloway 进行了概述 - http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership
我想在这里做两件事: 1. 将电子邮件字段添加到(默认)UserProfile 表中。 奇迹般有效。 用户可以注册用户名和电子邮件。 2. 更改登录以使用电子邮件而不是用户名,这也很有效。 这是问题所
我们被告知,“SimpleMembership”是asp.net 成员/角色管理的 future 。 MVC4“互联网应用程序”模板使用 SimpleMembership 实现账户管理。但是,它的实现
我想创建 azure mvc4 网站 (azurewebsites): 为公司域内的员工提供单点登录(ADFS 已与 ACS 联合) 通过本地帐户或 LiveID OAuth(liveid 是 ACS
使用 SimpleMembership 开发 ASP.Net MVC 4 网站,即使用户已登录,有时也会调用 Login GET Controller 。到目前为止,这仅发生在开发期间(我们还没有进行
我正在创建一个 Intranet 应用程序,我需要帮助来决定使用什么成员资格。 SimpleMembership 据说是 ASP.NET 授权和身份验证的 future ,但它具有那些网络安全内容和网
Membership.ValidateUser()的替代品是什么?在 SimpleMembership 中?我用 WebSecurity.Login验证当前用户,但我遇到的情况是用户必须再次输入密码才
我正在尝试通过使用 SimpleMembership 的 SQL 来获得一个 MVC4 站点,但是每当我创建用户记录时,我总是会遇到错误: [SqlException (0x80131904): Ca
我有 2 个问题: 为什么我会遇到这个异常?我想在我的用户表(它有 6 列:名称、角色、电子邮件、组、ID、软件版本)和成员资格表中创建一行。主键是 Id-SoftwareVersion 对。代码:
关于如何使这段代码以我想要的方式工作,我已经没有想法了。我有 3 个模型,如下所述。 UserProfile 和 Player 一对一关系 首先创建用户配置文件,在注册时将电子邮件确认发送到用户提供的
我遇到以下情况:我正在开发一个需要将数据库操作重定向到每个客户端数据库的 Multi-Tenancy 应用程序。因此,当用户连接到应用程序时,系统会使用该客户端数据库来处理他的 Action 和操作。
我正在通过 Nuget 在 MVC3 中试用“SimpleMembership”,并且已经下载了要玩的示例。问题是我无法弄清楚如何将角色分配给特定用户。 在标准 MVC 成员资格中,您可以使用类似的东
我正在尝试在 Code First 项目中将 SimpleMembership 与 MySQL 结合使用。这是我做的初始值设定项: WebSecurity.InitializeData
我试图在我的MVC 3应用程序中使用SimpleMembership。但是我得到以下错误: System.ArgumentException未处理 通过用户代码。找不到 要求的.Net Framewo
在我使用表单例份验证(通过 SimpleMembership)的 ASP.NET MVC 应用程序中,如何删除用户/帐户? WebSecurity 类不公开 DeleteUser。在 lark 上,我
仍在尝试使用 MVC4 来掌握新的 SimpleMembership。我更改了模型以包含工作正常的 Forename 和 Surname。 我想更改登录时显示的信息,而不是在 View 中使用 Use
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 8年前关闭。 Improve this qu
我是一名优秀的程序员,十分优秀!