我目前有一个自定义属性放在我的管理控制器和家庭控制器上。自定义属性将首先进入活动目录,以检查用户是否在特定的AD中,使其具有管理权限给整个应用程序。如果用户不在AD组中,那么定制属性将在安全表中查看它们是否具有可以赋予其管理权限,添加记录权限,删除记录权限和/或更新记录权限的安全记录。从Ajax调用mvc C访问HttpContext当前会话#
我在执行属性期间设置当前用户并将其添加到HttpContext.Current.Session。在整个页面加载我正在Ajax调用加载我的网页的每个部分的数据和安全性不能在ajax调用访问。我想通过他们拥有的权限来隐藏和显示不同的按钮(添加,删除,编辑和删除)。
我读我可以使用属性
[WebMethod(EnableSession = true)]
我的方法,它的工作原理,但我不认为这是最好的做法,我知道这会降低性能相当多。我也读过这个更多用于Web API而不是MVC应用程序。在Ajax调用过程中,有没有更好的方式来访问HttpContext中的会话数据?
我们没有使用开箱即用的授权。我们正在使用自定义属性。 User.IsInRole不适用于我们的解决方案。 – Juan
这只是一个例子,无论如何我编辑了我的答案,请再次检查,以便更清楚地了解 – phnkha
呃。为什么即使打扰使用Web Api,如果你打算做一些启用会话之类的事情。 Web Api的重点在于创建一个真正的REST投诉API。否则,你总是可以在MVC中创建端点并做任何你喜欢的事情。 –