我有自己的身份验证,在Global.asax.cs中看起来像这样:
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
HttpCookie authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie == null || authCookie.Value == "")
return;
FormsAuthenticationTicket authTicket;
try
{
authTicket = FormsAuthentication.Decrypt(authCookie.Value);
}
catch
{
return;
}
string[] roles = authTicket.UserData.Split(';');
if (Context.User != null)
Context.User = new GenericPrincipal(Context.User.Identity, roles);
}
然后在Web.config中:
<authentication mode="Forms">
<forms loginUrl="~/Users/Login" defaultUrl="~/Items/Index" timeout="432000" />
</authentication>
它可以授权罚款。我通过访问页面测试了它,没有登录和写入: HttpContext.Current.User.Identity.IsAuthenticated 这将返回false。手动进入〜/ Users / Login并登录将导致它返回true。因此,身份验证有效,它不会重定向未登录到〜/ Items / Index页面的用户。我在控制器上有[Authorize]属性:
[Authorize]
public class ItemsController : Controller
{
有关问题的建议吗?
答案 0 :(得分:0)
我设法解决了这个问题。事实证明,NinjectWebCommon文件是引起它的文件。我只是删除它,它再次工作。