C# 在通用处理程序(ashx)中使用网络凭据进行读取和身份验证
我在实体框架应用程序中创建了一个通用处理程序,该应用程序显示表中的数据。我想保护处理程序,以防有人试图通过url或其他方式直接访问它。当从另一个应用程序调用数据时,在何处以及如何写入用户名和密码,以在处理和调出数据之前进行身份验证(调用应用程序将具有用户名和密码) } 调用请求正在使用 request.Credentials=新的网络凭据(用户名、密码);C# 在通用处理程序(ashx)中使用网络凭据进行读取和身份验证,c#,ashx,generic-handler,networkcredentials,C#,Ashx,Generic Handler,Networkcredentials,我在实体框架应用程序中创建了一个通用处理程序,该应用程序显示表中的数据。我想保护处理程序,以防有人试图通过url或其他方式直接访问它。当从另一个应用程序调用数据时,在何处以及如何写入用户名和密码,以在处理和调出数据之前进行身份验证(调用应用程序将具有用户名和密码) } 调用请求正在使用 request.Credentials=新的网络凭据(用户名、密码); 双方同意使用什么用户名和密码。在我的处理程序中将这些映射到哪里?您要查找的是。这允许您使用基于角色的权限访问的类和方法 以下是一些有助于锁定
双方同意使用什么用户名和密码。在我的处理程序中将这些映射到哪里?您要查找的是。这允许您使用基于角色的权限访问的类和方法 以下是一些有助于锁定页面的附加属性:
[HttpPost] //URL Post method only
[HttpGet] //URL Post method only
[ChildActionOnly] //Not accessible via URL
编辑
您希望保护处理程序,以防有人试图通过url直接访问它,对吗?为此,请从MyDatahandler\u ProcessRequest中检查服务器变量HTTP\u REFERER
。如果用户不是来自他们应该来自的地方,抛出HTTP403错误
在web.config中,尝试将其调整为:
<authorization>
<allow verbs="POST" users="*"/>
<deny verbs="GET" users="*"/>
</authorization>
这将阻止使用URL参数进行任何直接URL访问。我在webconfig中有这个,在webconfig中有这个,但不确定在处理程序中还要做什么。但是调用函数如何使用网络凭据访问。我肯定我错过了什么
<authorization>
<allow verbs="POST" users="*"/>
<deny verbs="GET" users="*"/>
</authorization>