我是asp的新手,我为我的web项目创建了一个登录页面,但是我设置了身份验证,但我无法为我的项目设置授权!我看到很多这样的链接Authentication and Authorization in ASP.NET Web API 但是无法在我自己的项目上实现那些,我不知道我必须从哪里开始?! 谢谢你的帮助!
这是我的控制者:
public class AuthenticationController : Controller
{
private modelLayOut mLO = new modelLayOut();
public bool existBool = false;
// GET: Authentication
public ActionResult Index()
{
return View();
}
public ActionResult applicantAuthentication()
{
return View("ApplicantAuthentication");
}
public ActionResult applicantIsExist()
{
return View("applicantIsExist");
}
public ActionResult applicantPassIsWrong()
{
return View("applicantPassIsWrong");
}
public ActionResult applicantNotExist()
{
return View("applicantNotExist");
}
[HttpPost]
public ActionResult applicantCreate(string Username, string Password, string RepeatPassword)
{
if (mLO.applicantExistCheck(Username))
{
return View("applicantIsExist");
}
else
{
mLO.insertNewApplicant(Username, Password);
return View("ApplicantAuthentication");
}
}
[HttpPost]
public ActionResult applicantAccess(string Username, string Password)
{
if (mLO.applicantAccess(Username, Password))
{
return RedirectToAction("Home", "Home");
}
else
{
if (mLO.applicantExistCheck(Username))
{
return View("applicantPassIsWrong");
}
else
{
return View("applicantNotExist");
}
}
}
//agency part
public ActionResult agencyAuthentication()
{
return View("AgencyAuthentication");
}
public ActionResult agencyPassIsWrong()
{
return View("agencyPassIsWrong");
}
public ActionResult agencyNotExist()
{
return View("agencyNotExist");
}
[HttpPost]
public ActionResult agencyAccess(string Username, string Password)
{
if (mLO.agencyAccess(Username, Password))
{
return RedirectToAction("Home", "Home");
}
else
{
if (mLO.agencyExistCheck(Username))
{
return View("agencyPassIsWrong");
}
else
{
return View("agencyNotExist");
}
}
}
//webAdmin
public ActionResult webAdminAuthentication()
{
return View("WebAdminAuthentication");
}
public ActionResult webAdminAccessWrong()
{
return View("webAdminAccessWrong");
}
[HttpPost]
public ActionResult webAdminAccess(string Username, string Password)
{
if (mLO.webAdminAccess(Username, Password))
{
Session["Username"] = Username;
return RedirectToAction("webAdminPage", "Admin");
}
else
{
return View("webAdminAccessWrong");
}
}
答案 0 :(得分:0)
如果您想在整个控制器上进行授权,只需在控制器上设置“授权”属性:
[Authorize]
public class AuthenticationController : Controller
{
}
如果您想要对sigle操作进行授权:
public class AuthenticationController : Controller
{
[Authorize]
public ActionResult Index()
{
ViewBag.Message = "Welcome, " + HttpContext.User.Identity.Name;
}
}
编辑:只有经过身份验证的用户才能浏览授权方法或控制器
答案 1 :(得分:0)
您需要完全理解ASP.NET 5 Identity model
(检查here和here)。然后,您应该对适合您项目的任何更改实施该功能。关于ASP.NET 5 Identity
最重要的事情之一是它的简单性和灵活性,可以使用不同的用户类型和可访问性,只需使用方法注释。如果您以前有使用SQL Membership
的经验,请检查here以了解如何从SQL成员身份迁移到ASP.NET身份。或者,如果您以前有使用ASP.NET Membership
的经验,请检查here以了解如何从ASP.NET成员身份迁移到ASP.NET身份。
关于how say: "welcome PERSON NAME" ?
上的问题,在实现ASP.NET 5 Identity之后,您只需要
System.Web.HttpContext.Current.User.Identity.Name
在你需要的地方!。