asp.net mvc 统一身份验证问题、怎么实现?

.netwebform可以利用page的事件进行统一身份验证,写一个类继承自System.Web.UI.Page,里面实现验证,然后其它页面继承自这个类就可以实现验证了;... .net webform 可以利用page 的事件进行统一身份验证,写一个类继承自System.Web.UI.Page ,里面实现验证,然后其它页面继承自这个类就可以实现验证了;;;

因为在mvc里没load事件,所以不能照搬,那么在.net mvc 里怎么实现呢? 曾听过有人说过类似的方法,但当时没注意。。而且还有另外一种方法。。

请问.net mvc 统一身份验证 怎么实现,有几种方法实现?
比如: 只需一次session判断,需要授权的control 或者action 就可以访问。
展开
 我来答
奥术引擎
2013-08-29 · TA获得超过414个赞
知道答主
回答量:72
采纳率:0%
帮助的人:87万
展开全部
MVC里有AuthorizeAttribute特性,直接标记在Controller类上或者在控制器操作上。
[Authorize]
public class ArticleController : Controller
{
[Authorize]
public ActionResult Index()
{
return View();
}
}

如果用户没有登录,就会跳转到登录页面。也可以自定义扩展AuthorizeAttribute,实现自定义的验证。建议你买本书看,一两句话说不清楚。
更多追问追答
追问
我想知道的是不用 mvc 的Authorize特性,  如果有多个不同登录验证,返回的也是多个不同页面,那用Authorize 好像不好使。
追答
可以的,自定义扩展一下就行了:
public class CustomAuthorizeAttribute : System.Web.Mvc.AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (httpContext == null)
{
throw new ArgumentNullException("HttpContext");
}
if (!httpContext.User.Identity.IsAuthenticated)
{
return false;
}

string userName = httpContext.User.Identity.Name
///根据用户名从数据库中获取用户,实现自定义验证。

return false;
}

public override void OnAuthorization(System.Web.Mvc.AuthorizationContext filterContext)
{
///

base.OnAuthorization(filterContext);
}
}

MVC中的验证要比webform灵活,而且我认为这种方法要比webform中自定义类继承System.Web.UI.Page更好。
霜之
2013-08-29 · TA获得超过187个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:142万
展开全部
用验证票,只要没登入,不管进哪个页都会自动转到登入页的。
追问
验证票是什么,能否具体点.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式