asp.net mvc如何实现多个登录页自动跳转的身份认证?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net mvc如何实现多个登录页自动跳转的身份认证?相关的知识,希望对你有一定的参考价值。

我有会员,店铺,管理员三种身份人员,有各自的登录页和管理中心,在mvc中使用身份验证,【authorize】在未登陆时如何让他们跳转到各自的登录页呢,?
<authentication mode="forms">
<forms loginurl='/logon' timeout='2880'/>

</authentication>
这样只能跳转到一个登录页,如何调整到各自的登录页呢

一个浏览者在没有登录之前他只是一个匿名用户,如果他不向服务端提交信息,你是没有办法知道他属性什么角色的。
你可以使用一个统一的登录页面,然后让用户选择自己属性什么角色,最后再根据用户的不同选择转到不同的页面就行了。
参考技术A 同意楼上的,你让用户自己选择,银行的登陆都搞成这样的,普通用户,和企业用户分开登陆 参考技术B loginUrl:是在没有通过身份验证的情况下,跳转到的登录页面
注意:这个属性配置的英文为login和Url 即登录+统一资源定位
如此loginUrl就是可以看作是登录页,登录页只是表示识别用户身份的方式之一,根据你的问题来看应该是作为识别用户类别的一种方式,按照逻辑处理顺序这里你应该是在识别你的配置文件中的authorization下你配置的用户是否具有访问权限,这个时候你是可以获取到当前访问用户是你所配置的那一个用户,对照用户你可以在loginUrl页上确认用户的身份来做跳转处理,跳转到你需要的各自的登录页上去。
详细建议百度一下mvc.net forms验证

在asp.net mvc中实现页面跳转的方式都有哪些?有啥区别?

具体方式和区别如下:

1、第一种方法:通过HttpServletResponse的API直接输出

步骤:

控制层:controller类的编写

@Controller

public class RequestController

 @RequestMapping("/request")  //映射地址注入

  public void handleRequest(HttpServletRequest rq, HttpServletResponse rp) throws Exception

     rp.getWriter().println("request");

 

2、web.xml文件的配置

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"

     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

     version="3.1">

  <servlet>

    <servlet-name>dispatcher</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>dispatcher</servlet-name>

    <url-pattern>/</url-pattern>

  </servlet-mapping>

</web-app>

3、第二种方法:使用HttpServletResponse 类进行重定向跳转视图

  @RequestMapping("/Response")

  public void handleRequest(HttpServletRequest rq, HttpServletResponse rp) throws Exception

    rp.sendRedirect(url);  //跳转的指定页面。

 

4、第三种:使用HttpServletRequest 转发   

  @RequestMapping("/request")

  public void handleRequest(HttpServletRequest rq, HttpServletResponse rp) throws Exception

    req.setAttribute("属性名","属性值");  //赋值

    req.getRequestDispatcher(url).forward(rq,rp); //跳转

   

参考技术A 直接提交到另一个页面的action,或者redirct转向别的页面. 参考技术B 页面跳转的方式跟asp或者mvc似乎没有关系

以上是关于asp.net mvc如何实现多个登录页自动跳转的身份认证?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET如何实现跳转到上一个浏览的页面?

asp.net mvc 如何实现自动提交或保留用户未登录前得信息

asp.net(vs2008 c# 中) 如何在跳转的页面传递参数?

ASP怎样实现页面跳转。

asp.net如何让未登录用户登录后能自动跳转到登录前访问的页面?

asp.net中如何使控件内容在本页面跳转不刷新