【发布时间】:2018-11-02 21:58:39
【问题描述】:
是否可以让我的应用程序在呈现视图之前要求用户名和密码提示? 就像在 twitter API 上获取有关您的帐户的信息一样:
http://twitter.com/account/verify_credentials.xml
所以在渲染视图之前 ||它要求您插入用户名和密码的文件,我认为这是直接在服务器上进行的,因为 curl 请求是基于用户名:密码以及这样的:
curl -u user:password http://twitter.com/account/verify_credentials.xml
当我尝试按照相同的结构构建 API 时,我想知道如何在 ASP.NET MVC C# 上做到这一点。我已经在 ruby rails 上使用过它,它非常简单,例如:
before_filter :authenticate
def authenticate
authenticate_or_request_with_http_basic do |username, password|
username == "foo" && password == "bar"
end
我不认为 [Authorize] 过滤器是相同的,因为我相信它只是一个重定向, 它会将您重定向到基于帐户数据库的帐户内部控制器,在这种情况下,我将使用另一个数据库,特别是来自网络服务的数据库,并在提交信息后进行验证。 但我需要采取行动来要求用户并根据其请求传递凭据。
提前致谢
更新:
实际上是请求一个需要此身份验证的页面(即 Twitter) 我必须应其要求声明这一点
request.Credentials = new NetworkCredential("username", "password");
这将反映提示的用户名和密码。
所以,这完全一样,但是从另一方面来说,如果可以根据请求向身份验证提示提供信息,我怎么能要求这个身份验证而是请求?
所以每次有人尝试向我的应用程序发出请求时:
http://myapplication/clients/verify_credentials
它应该在服务器提示符下询问用户名和密码 例如,要检索有关 curl 的信息,它会是这样的
curl -u user:password http://myapplication/clients/verify_credentials
【问题讨论】:
-
应用程序是否也使用表单身份验证?
-
实际上表单将使用我正在尝试构建的这个外部接口,所以所有的验证和一切都应该像 twitter 一样根据请求进行,没有任何图形界面。在我的控制器内部,我将进行验证。我会用更多细节更新我的问题
标签: asp.net-mvc http authentication basic-authentication