PDA

View Full Version : سوال: Authentication کردن در وب سرویس



ramin149
چهارشنبه 15 بهمن 1393, 14:40 عصر
سلام به دوستان . من می خواهم برای اتصال به وب سرویس soap کلاینت هایم Authentication کنم ولی در این مورد اطلاعاتی پیدا نکردم . و تنها روشی که به نظرم اصولی می آمد SoapHeader بود . بر اساس توضیحاتی که خواندم کدم را به صورت زیر نوشتم .

IService.cs
public interface IService
{
[OperationContract]
bool DoWork();
}



Service.cs
public class Service : IService
{
public AuthHeader Authentication;


[SoapHeader("Authentication", Required = true)]
[WebMethod(Description = "Returns some sample data")]
public bool DoWork()
{
if (Authentication.Username == "userName" &&
Authentication.Password == "pwd")
{
//Do your thing
return true;

}
else
{
//if authentication fails
return false;
}
}
}


مشکل اصلی اینجاست که وقتی پروژه را Start می کنم در قسمت Header متد هیچ پارامتری وجود ندارد .

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://tempuri.org/IService/DoWork</Action>
</s:Header>
<s:Body>
<DoWork xmlns="http://tempuri.org/" />
</s:Body>
</s:Envelope>

لطفا کمک کنید و بگید من چه شکلی می تونم نام کاربری و رمز عبور وب سرویس را از Client بگیرم و یا روش دیگری دارید معرفی کنید با تشکر

ferdin
پنج شنبه 16 بهمن 1393, 20:04 عصر
سلام دوست عزیز
شما یک پراپرتی از جنس AuthHeader تعریف کردی ، فقط نکته اینجاست که AuthHeader باید یک کلاس باشه که از SoapHeader ارثبری کرده باشه. شما اینکارو انجام دادی؟

ramin149
شنبه 18 بهمن 1393, 10:45 صبح
اره دوست عزیز اون کار را هم انجام دادم .