我有一个包含AdminController类的ASP.NET MVC项目,并给我这样的URls:
我想配置服务器/应用程序,以便只能从192.168.0.0/24网络(即我们的LAN)访问包含/ Admin的 URI
我想将此控制器限制为只能从某些IP地址访问.
在WebForms下,/ admin /是一个物理文件夹,我可以在IIS中限制...但是使用MVC,当然,没有物理文件夹.这是使用web.config或属性实现的,还是我需要拦截HTTP请求来实现这一目标?
ASP.NET MVC中用户授权/身份验证的最佳方法是什么?
我看到有两种方法:
我更喜欢第二个选项,因为User是我的域模型的一部分(我对ASP.NET内置的东西没有经验),但我真的很想听听人们在这个领域做过什么.
在组件安装之前进行授权检查的最佳做法是什么?
我使用react-router 1.x
这是我的路线
React.render((
<Router history={History.createHistory()}>
<Route path="/" component={Dashboard}></Route>
<Route path="/login" component={LoginForm}></Route>
</Router>
), document.body);
Run Code Online (Sandbox Code Playgroud)
这是我的仪表板组件:
var Dashboard = React.createClass({
componentWillMount: function () {
// I want to check authorization here
// If the user is not authorized they should be redirected to the login page.
// What is the right way to perform this check?
},
render: function () {
return (
<h1>Welcome</h1>
);
}
});
Run Code Online (Sandbox Code Playgroud) 是否有像MongoDB的"root"用户的超级UNIX?我一直在关注http://docs.mongodb.org/manual/reference/user-privileges/并尝试了很多组合,但它们似乎都缺乏某个领域或其他领域.当然,有一个角色高于那里列出的所有角色.
对我来说这是一个长期存在的问题,我从未真正解决过,所以我想要你的意见.如果我知道用户因权限或对象状态不足而无法执行的操作,那么这些操作的UI元素是否应对用户隐藏,可见但已禁用或可见,如果尝试会导致错误?你答案的理由是什么?如果禁用,您会告知原因,如果是,如何?
这是一个Web界面,所以我已经知道我需要检查传入的帖子/获取权限并在那里处理错误.我主要谈论如何处理UI.
这与关于禁用或隐藏菜单项的规则类似,但我对所有类型的UI元素感兴趣,而不仅仅是菜单.
例子:
我有一个新页面,允许用户创建一个新的事件.事件可以是主事件或子事件.创建主事件需要"EditMasterEvent"特权,而创建子事件只需要"EditEvent"特权.我有一个下拉列表,允许选择现有事件作为父事件(主事件)或没有父事件(这是一个主事件).如果用户仅具有"EditEvent"权限,那么"创建主事件"选项是否应显示在下拉列表中或省略.
删除事件要求您是应用程序管理员或具有事件类型的相应编辑权限.在后一种情况下,该活动也必须超过5年.删除事件会导致系统中相关数据的主要级联删除,并且出于法律原因,此数据必须在事件发生后保留至少5年.由于此操作对于普通用户来说很少见,因此典型情况是该操作不可用.是应该一直显示还是仅在实际可能时显示?
是否可以通过HttpActionContext对象访问post或get参数?
我有一组传感器可以将数据记录到提供REST API的Web服务器上.我想通过让传感器在数据中包含其硬件ID然后在数据库中查找以查看id是否存在来介绍某种身份验证/授权.由于API提供了许多web api操作方法,我最好使用自定义授权属性
public class ApiAuthorizationFilter : AuthorizeAttribute
{
protected override bool IsAuthorized(HttpActionContext actionContext)
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
如何从actionContext访问post/get数据?
编辑:POST的示例
POST /Api/api/ActionMethod/ HTTP/1.1\r\n
Content-Type: application/json\r\n
Host: localhost\r\n
Accept: */*\r\n
Content-Length:52\r\n
\r\n
{"Id": '121a222bc', "Time": '2012-02-02 12:00:00'}\r\n
Run Code Online (Sandbox Code Playgroud)
祝你今天愉快!
我设法扩展TokenAuthentication并且在使用请求会话来存储我的令牌时有一个工作模型,但是当我尝试作为此处所述Authorization的头参数传递时,我注意到我的响应没有META变量HTTP_AUTHORIZATION.我还注意到,如果我将"Authorization2"作为标头参数传递,它在请求中可见:
{
'_content_type': '',
'accepted_media_type': 'application/json',
'_request': <WSGIRequest
path:/api/test_auth/,
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
COOKIES:{
'MOD_AUTH_CAS_S': 'ba90237b5b6a15017f8ca1d5ef0b95c1',
'csrftoken': 'VswgfoOGHQmbWpCXksGUycj94XlwBwMh',
'sessionid': 'de1f3a8eee48730dd34f6b4d41caa210'
},
META:{
'DOCUMENT_ROOT': '/etc/apache2/htdocs',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTPS': '1',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch',
'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8',
'HTTP_AUTHORIZATION2': 'Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4c',
...
Run Code Online (Sandbox Code Playgroud)
我的第一个猜测是apache正在删除授权头,并且我已经阅读了一些S/O问题,这些问题表明,如果apache与基本授权不匹配并进行身份验证,则会丢弃该值,但我不知道如何允许Authorization标头"传递"到Django和WSGIRequest.有谁知道如何解决这个问题?
我也使用mod_auth_cas和mod_proxy,如果改变了什么..
apache authorization apache2 mod-proxy django-rest-framework
我在API中有一些端点 - /user/login, /products.
在扬鞭UI我张贴email,并password到/user/login和我收到的响应token串.
然后,我可以从响应中复制令牌,并希望将其用作Authorization对所有URL的请求中的标头值(如果它存在),并/products作为示例.
我应该在Swagger UI页面上的某处手动创建文本输入,然后将令牌放在那里并以某种方式注入请求或是否有工具以更好的方式管理它?
我正在尝试向ASP.NET MVC应用程序添加简单的身份验证和授权.
我只是试图在基本的表单身份验证上增加一些功能(由于简单性和自定义数据库结构)
假设这是我的数据库结构:用户:用户名密码角色(理想情况下是一些枚举.如果需要,则为字符串.目前,用户只有一个角色,但这可能会改变)
高级问题:鉴于上述数据库结构,我希望能够做到以下几点:
目前,我真正确定的是如何进行身份验证.在那之后,我迷路了.我不确定我在哪个位置获取用户角色(登录,每次授权?).由于我的角色可能不是字符串,我不确定它们如何适应User.IsInRole().
现在,我在这里问,因为我没有找到一个"简单"完成我需要的东西.我见过多个例子.
对于身份验证
对于授权,我看到:
任何帮助将不胜感激.但是,我担心我可能需要很多细节,因为我用Google搜索的内容似乎都不适合我需要做的事情.
使用ASP.NET MVC我正在创建一个自定义Authorize属性来处理一些自定义授权逻辑.我已经看了很多例子,这很简单,但我的问题是哪种方法最好覆盖,AuthorizeCore或OnAuthorization?我见过许多覆盖其中一个的例子.有区别吗?
authorization ×10
asp.net-mvc ×4
.net ×2
apache ×1
apache2 ×1
api ×1
c# ×1
javascript ×1
mod-proxy ×1
mongodb ×1
react-router ×1
reactjs ×1
roles ×1
security ×1
swagger ×1
swagger-ui ×1
web-config ×1