PDA

View Full Version : سوال: مشكل در دسترسي كاربران در سايت Upload شده



ali_kashani
سه شنبه 17 آذر 1388, 08:54 صبح
با سلام

در سايتي كه طراحي كردم از امكانات Membership خود asp.net استفاده كردم براي دسترسي كاربران 2 تا Role تعريف كردم در زماني كه در سيستم خودم كار مي كنم مشكلي ندارم ولي وقتي كه سايت را Upload مي كنم كاربران پس از وارد كردن user و pas شناخته مي شوند ولي Rple هاي ايشان در نظر گرفته نمي شود و با توجه به اينكه در webConfig براي بعضي صفحات احتياج به Role مثلا Power User مي باش كاربر مذكور را به عنوان كاربر معمولي مي شناسد و اجازه ورود به صفحه انتخاب شده را ندارد . لازم به ذكر است ارتباط با Data Base هيچ مشكلي ندارد و طريقه Upload بانك به اينصورت بوده كه ديتاي بانك را از طريق sql server اكسپورت كردم.
براي upload سايت يك دفعه سايت Publish شده را در httpdoc در ftp كپي كردم و يك دفعه كل source را كپي كردم و براي اولين بار است كه سايت Upolad مي كنم لطفا راهنمايي هاي لازم را براي عيب يابي را بفرماييد:متفکر:

clover
سه شنبه 17 آذر 1388, 10:28 صبح
در وب کانفیگ این بلاک را دارید ؟


<roleManager enabled="true" defaultProvider="SqlRoleProvider" >
<providers>
<clear />
<add name="SqlRoleProvider" type="System.Web.Security.SqlRoleProvider"
connectionStringName="your-connection"
applicationName="/" />
</providers>
</roleManager>

ali_kashani
سه شنبه 17 آذر 1388, 10:58 صبح
سلام

defaultProvider="SqlRoleProvider" و applicationName="/" را ندارم.

ali_kashani
چهارشنبه 18 آذر 1388, 08:10 صبح
با سلام

مي خوام ببينم اصلا روش Upload سايت و Data Base را درست انجام دادم يا نه.

Alireza_Salehi
چهارشنبه 18 آذر 1388, 09:45 صبح
در بخش connectionStrings:

<add name="mysiteData" connectionString="Data Source=localhost\mysqlinstance;Initial Catalog=mydb;Integrated Security=True;Persist Security Info=True" providerName="System.Data.SqlClient"/>در بخش system.web هم:

<authentication mode="Forms">
<forms cookieless="UseCookies" defaultUrl="~/Default.apsx" enableCrossAppRedirects="false" loginUrl="~/Default.aspx" name=".mysite.membership" path="/" protection="All" slidingExpiration="true" timeout="60" requireSSL="false"/>
</authentication>
<membership defaultProvider="mysiteMembership">
<providers>
<clear/>
<add name="mysiteMembership" type="System.Web.Security.SqlMembershipProvider" connectionStringName="mysiteData" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" passwordFormat="Hashed" applicationName="mysite" requiresUniqueEmail="false" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0"/>
</providers>
</membership>
<roleManager defaultProvider="mysiteRole" enabled="true" cookieProtection="All" cookieName=".mysite.role"
cookiePath="/" cookieTimeout="30" cookieRequireSSL="false" cacheRolesInCookie="true">
<providers>
<clear/>
<add name="mysiteRole" type="System.Web.Security.SqlRoleProvider" connectionStringName="mysiteData" applicationName="mysite"/>
</providers>
</roleManager>موارد فوق باید وجود داشته باشند، تنظیمات خاصش مهم نیست، مهم ارتباط Connection ها با RoleProvilder و MembershipProvider و همچنین معرفی DefaultRoleProvider و DefaultMembershipProvider هستش.
اون clear رو هم حتما بذارید تا هر تنظیم دیگه ای غیر از اون چه شما نوشتید لغو بشه.


دیتابیس باید با مشخصاتی که هاست به شما معرفی کرده آپلود بشه:
معمولا یک IP و یک user و pass به شما میدن.
باید دیتابیس رو اونجا ایجاد کنید و کانکشن استرینگ مربوطه رو در وب کانفیگ تغییر بدید.


برای این که مطمئن بشید تنظیمات درسته :
1. پروژه رو از طریق ویژوال استودیو باز کنید.
2. کانکشن استرینگ رو روی هاست تنظیم کنید.
3. از منوی WebSite گزینه ASP.NET Configuration رو انتخاب کنید.
4. در سایتی که باز میشود در قسمت Security چک کنید نقش ها یی که تعریف کردید وجود داشته باشد.

ali_kashani
چهارشنبه 18 آذر 1388, 10:28 صبح
سلام

براي تنظيم كانكشن استرينگ روي هاست بايد در قسمت data source در web config چي بنويسم.

raziee
چهارشنبه 18 آذر 1388, 10:33 صبح
براي تنظيم كانكشن استرينگ روي هاست بايد در قسمت data source در web config چي بنويسم.
یا IP سرور بانکتون.
اگه سرور بانک و سرور هاست یکی هست میتونی از localhost استفاده کنی.

ali_kashani
چهارشنبه 18 آذر 1388, 10:56 صبح
یا IP سرور بانکتون.
اگه سرور بانک و سرور هاست یکی هست میتونی از localhost استفاده کنی.

سلام

براي اينكه بتوانم از منوی WebSite گزینه ASP.NET Configuration در خود VS انتخاب كنم و Role ها را چك كنم مي خوام بدونم.

Alireza_Salehi
چهارشنبه 18 آذر 1388, 13:31 عصر
فرض میکنیم همچین مشخصاتی به شما داده اند:

IP: 123.456.654.321
Port: 1234
Database Name: mydb
Usernamr: myusername
password: 123456789


ممکنه به جای آی پی دومین بدن یا هر چیز دیگه ای: مثلا sql.mysite.com
ممکن هم هست پورت رو ندن و با پورت پیشفرض کارکنه که لازم نیست پورت وارد بشه.
حالا کانکشن استرینگ اینجوری میشه:

با پورت:

<add name="mysitedata"
connectionString="Data Source=123.456.654.321:1234;Initial Catalog=mydb;Persist Security Info=True;User ID=myusername; Password=123456789"
providerName="System.Data.SqlClient"/>


بدون پورت:

<add name="mysitedata"
connectionString="Data Source=123.456.654.321;Initial Catalog=mydb;Persist Security Info=True;User ID=myusername; Password=123456789"
providerName="System.Data.SqlClient"/>


با نام instance (بیشتر در حالت اینترانت کاربرد داره):

<add name="mysitedata"
connectionString="Data Source=123.456.654.321\myinstancename;Initial Catalog=mydb;Persist Security Info=True;User ID=myusername; Password=123456789"
providerName="System.Data.SqlClient"/>


این بخش رو هم میتونی حذف کنی:

Persist Security Info=True;

اطلاعات بیشتر در :

http://www.connectionstrings.com/