我在Windows Authentication背后使用了ASP.Net Web API,并使用Authorize属性来指定用户可以访问哪些控制器和函数。这很好用。问题是,我希望帮助区域只反映用户已被授予访问权限的内容。我很好奇是否有人以某种方式做到了这一点。这是在控制器、应用程序启动或帮助控制器级别完成的。
先谢谢你...
我的一个控制器的代码片段
[Authorize]
public class TaktTimeController : ApiController
{
private BIDataContainer db = new BIDataContainer();
我使用WindowsMVC4开发了一个web系统,我必须使用ASP.NET Web API和.NET Forms Application执行集成。
到目前为止,一切都很好,但现在我需要使用Windows窗体应用程序对用户进行身份验证,该应用程序将在internet上打开。
我的应用程序已经包含了在数据库中注册的用户,并且当前是使用ASP.NET MVC的“Authorize”组件进行身份验证的。
对于通过客户机(Windows Forms Application)使用的数据,目前我使用库。
如何安全地完成此任务?有人有什么建议吗?
我对ASP.NET MVC的理解是,对于授权,我应该使用类似于-
public class IPAuthorize : AuthorizeAttribute {
protected override bool AuthorizeCore(HttpContextBase httpContext) {
//figure out if the ip is authorized
//and return true or false
}
但是在Web API中,没有AuthorizeCore(..)。
OnAuthorization(..)是有的,一般的建议是不要使用OnAuthor
我在ASP.NET Web API方法中使用了Authorize属性
[Authorize]
public IEnumerable<User> GetAllUsers()
从应用程序中,我可以毫无问题地访问此方法,因为我的用户已经通过了身份验证。但是,有没有办法在调用时指定此方法的用户名和密码,以便实现REST API?这是在从独立应用程序或浏览器调用时发生的。
我正在考虑编写自定义的授权属性,对于输出缓存我不太确定。属性如下所示:
public class AuthorizeWithAreasAttribute : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (!filterContext.HttpContext.User.IsInRole(Roles))
{
var urlHelper = new UrlHe
我有一个超级简单的身份验证属性,我试图在一个ASP.NET MVC 5应用程序中实现它,而且我遇到了一些麻烦。我希望该属性在全局应用,但控制器中的特定操作除外(例如,登录表单和主页)。
我尝试用[OverrideAuthentication]属性来修饰操作,但没有结果。它给了我一个重定向循环错误,因为应用程序仍然在登录表单上运行身份验证,并且一直试图一次又一次地重定向到登录表单。
还有其他人见过这种行为吗?知道我在这里塞了什么吗?
举个例子,我创建了一个超级简单的过滤器,这个过滤器目前还没有实现:
public class BasicAuthenticationAttribute
: