从.net mvc 2.0 razor pagemodel应用程序使用静态的基本auth rest Web服务

时间:2019-07-08 15:15:54

标签: rest asp.net-core .net-core asp.net-core-2.0 restsharp

我需要使用来自.net核心剃须刀页面模型应用程序的具有基本身份验证的静态Web服务。

这都是旧项目的一部分,需要新UI才能使用某些新组件,并且以前曾经拥有Webforms UI。

我设置了一个自定义用户管理器和一个自定义用户存储。我可以使用我重写的方法调用restful方法,然后我就可以成功登录。

但是,我需要在每个PageModel中都具有用户名和密码,并且登录后我不知道如何获取密码。

例如,当用户转到索引页面时,我需要从服务中检索一些内容

var client = new RestClient(ConfigurationManager.AppSettings["cslLink"] +
                                                    "/BusinessEntityService.svc/GetMainItemGridView");
            var request = new RestRequest(Method.GET);
            client.Authenticator = new HttpBasicAuthenticator(User.Identity.Name, "hardcodedpassword");
            IRestResponse response = client.Execute(request);

            JsonArrayGridViewDataSOurce = response.Content;

我可以获取用户名,但不能获取密码。

有什么办法可以获取密码?

还有另一种方法可以做到这一点吗?

如有必要,我可以修改服务,但必须以最少的修改次数尽快完成服务。

1 个答案:

答案 0 :(得分:0)

不。无法检索密码。它存储为单向加密和加盐哈希。即使您可以得到它,也对您没有任何好处,因为它不再是“密码”。登录时,输入的密码同样会被加盐和散列,然后与数据库中的密码进行简单比较。只能通过比较两个哈希值来验证密码,而不是比较用户输入的文字密码。