Как аутентифицировать XML web api в ASP.NET с#
Я реализовал аутентификацию, но получаю ошибку как:
System. NullReferenceException: ссылка на объект не установлена на экземпляр объекта.
Что я уже пробовал:
namespace testwebapi { /// <summary> /// Summary description for testwebapi /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. // [System.Web.Script.Services.ScriptService] public class testwebapi: System.Web.Services.WebService { public class AuthHeader : SoapHeader { public string Username; public string Password; } public AuthHeader Authentication; [SoapHeader("Authentication", Required = true)] [WebMethod(Description = "WebMethod authentication testing")] public string SensitiveData() { //Do our authentication //this can be via a database or whatever if (Authentication.Username == ConfigurationManager.AppSettings["ff_username"] && Authentication.Password == ConfigurationManager.AppSettings["ff_password"]) { //Do your thing string success = ""; success = "{\"status\": \"test web api security.\"}"; this.Context.Response.ContentType = "application/json; charset=utf-8"; this.Context.Response.Write(success); return ""; } else { //if authentication fails return null; } }
Suvendu Shekhar Giri
есть успехи с отладкой?
F-ES Sitecore
http://www.codeproject.com/search.aspx?q=Object+reference+not+set+to+an+instance+of+an+object&sbo=qa&usfc=false&x=8&y=3
Используйте отладчик, чтобы хотя бы узнать, какая строка выдает ошибку и что именно является нулевым.
Member 11466758
если (аутентификация.Имя Пользователя = = ConfigurationManager.AppSettings ["ff_username"] &&
Идентификация.Пароль = = ConfigurationManager.Параметр appsettings["ff_password"])
В этой строке есть ошибка, так как ссылка на объект не установлена на экземпляр объекта.
F-ES Sitecore
Таким образом, либо "аутентификация" равна нулю, либо ConfigurationManager.Параметр appsettings["ff_username"] имеет значение null, или диспетчер конфигураций.AppSettings ["ff_password"] имеет значение null. То, что из них является нулевым, диктует, в чем заключается проблема и каково окончательное решение.
Как было сказано выше, используйте отладчик. Мы не можем отлаживать ваш код и проверять ваши переменные удаленно.
Member 11466758
это значение равно нулю "аутентификация" во время отладки
F-ES Sitecore
Вы либо неправильно его реализовали, либо неправильно его называете. Посмотрите, сможете ли вы заставить этот пример работать
http://tamedotnet.blogspot.co.uk/2013/04/soap-header-authentication-for-web.html
Member 11466758
я отладил свою страницу, используя тот же код из приведенной выше ссылки, но мой заголовок soap не отображался при вызове метода hello world.