所有人
我很熟悉前端和.net MVC。最近,我正在尝试开发网站登录系统,并在开发到另一个页面的链接时遇到一些问题。
例如,我有两个页面,A和B。A具有可以跳至B的链接。但是,由于必须限制访问,因此将身份验证放入B的控制器中。这样。
[Authorization]
public class BController : Controller
{
public ActionResult Index()
{
return View();
}
}
如您所见,未经身份验证,没有人能够获得B的视图。验证权限的方法是通过检查标头,然后将标头放入其中。
因此,我的问题变成了当需要跳转到经过身份验证的页面时如何编码html链接。目前,链接采用的是这种形式。
<h2>@Html.ActionLink("B page", "Index", "B")</h2>
我已经知道这只是一个帮助程序,可以将其转换为简单的html。尽管如此,我还是很困惑如何使用html链接跳转到带有令牌的新页面。
有人有这样的经历吗?
感谢百万次。
答案 0 :(得分:0)
使用ActionLink
或纯html锚标记生成的超链接将发出GET
请求。 Get
请求将与您编写的html没有任何关系。它只是一个带有查询字符串的网址。这就是导航到页面的所有重要内容。
回到您的授权过滤器,如果用户在页面A上尚未通过身份验证,并且单击了页面B的链接,则应使用ReturnUrl
参数将其发送到登录页面。成功登录后,应将其重定向到ReturnUrl
(在您的情况下为B页)。
另一方面,如果用户已经登录,则Asp.net MVC框架将对此进行评估,并允许用户从页面A转到页面B。
以上所有步骤都需要有效的身份验证过程。您可以从Asp.net MVC项目模板随附的Form authentication
开始。通常,这足以处理任何基本的身份验证和授权。