使用标准的ASP.NET登录控件,如果用户尝试登录已取消组的成员,我试图让它拒绝登录。
<asp:Login ID="Login1" runat="server" OnLoggedIn="Login1_LoggedIn" DestinationPageUrl="~/Default.aspx" FailureText="Whoops - something went wrong with your login. <br />Please try again. <br />If you've forgotton you password please click link below and we'll send you a new one" >
<LayoutTemplate>
<table cellpadding="1" cellspacing="0" style="border-collapse:collapse;">
<tr>
和后面的代码(伪代码..不起作用)
protected void Login1_LoggedIn(object sender, EventArgs e)
{
var profile = WebProfile.GetProfile(UserManager.GetCurrentUserName());
if User.IsInRole("cancelled") {
FormsAuthentication.SignOut();
// write out a message saying you are not allowed to login
}
}
答案 0 :(得分:0)
实际上,您不必在代码中执行此操作。您可以放入web.config的授权部分来阻止访问,而不是禁止登录。让用户登录但没有权利是完全合法的。
<deny roles="canceled">
如果你考虑一下,这是有道理的。我们有一个网站通过设置
将web.config设置为限制来锁定管理文件夹
因此,以其他用户级别登录的用户将被锁定。使用我的建议,您将特别锁定配置文件中“已取消”角色的用户,这通常更适合需要编译的代码。