Member 11466758 Ответов: 0

Как аутентифицировать 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.

0 Ответов