【发布时间】:2016-01-11 09:33:44
【问题描述】:
我正在使用 ASP.NET、MVC 5 和 Identity 2.0 构建一个应用程序。
当用户单击导航栏中的某个按钮时,我会捕获当前用户及其安全标记,并将它们作为参数传递给使用 GET 的外部 url。就像这样:
<ul class="nav navbar-nav">
@if (Request.IsAuthenticated && User != null)
{
<li class="menu-item">@Html.ActionLink("External URL", "ExternalUrl", "Home")</li>
}
...
public ActionResult ExternalUrl()
{
var user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(User.Identity.GetUserId());
var userName = user.UserName;
var par1 = user.SecurityStamp;
return Redirect("http://externalurl/access.asp?" + "userName=" + userName + "&par1=" + par1);
}
这确实有效,它解决了我的问题,但看起来很难看。我是网络编程的新手,我认为必须有更好/更漂亮的方式来做到这一点。怎么样?
【问题讨论】:
-
好吧,您可以将 UserName 和 SecurityStamp 保存在声明身份中,这样您就不必一直访问数据库……但这似乎是一个基于意见的问题。我不认为它丑得要命
标签: c# html asp.net-mvc get asp.net-mvc-5