কীভাবে ওয়েবকনফাইগে সেশন টাইমআউট সেট করবেন


178

আমি খুব চেষ্টা করেছি কিন্তু এএসপি.নেট ওয়েব অ্যাপ্লিকেশনটির জন্য প্রসেস সেশনের জন্য সেশন সময়সীমার মান কীভাবে সেট করা যায় তার কোনও সমাধান খুঁজে পাচ্ছি না।

আমি ভিএসটিএস ২০০৮ +। নেট ৩.৫ + সি # ব্যবহার করছি। টাইমআউটটি 1 মিনিটের জন্য নির্ধারণ করতে আমি নিজে যা লিখেছিলাম তা এখানে কি সঠিক?

আমি system.web বিভাগে লিখেছি web.config

<sessionState timeout="1" mode="InProc" />

5
সময়সীমা নির্ধারণ করার উপায়টি সঠিক। এটি নিয়ে আপনার কোনও সমস্যা আছে?
দারিন দিমিত্রভ

7
আপনি জানেন যে এর অর্থ এটি নিষ্ক্রিয়তার 1 মিনিটের পরে শেষ হবে, এটি শুরু থেকে 1 মিনিটের পরে নয়? আমার অনুমান যে আপনি যদি এই প্রশ্নটি জিজ্ঞাসা করছেন, এবং সময়সীমাটি সঠিকভাবে টাইপ করেছেন, তবে এটি কীভাবে কাজ করে তা আপনি বিভ্রান্ত হতে পারেন।
ইভান জ্লাতানোভ

1
আমার নিষ্ক্রিয় সময় নির্ধারণ করা দরকার, এটি আমার প্রয়োজন। ধন্যবাদ ইভান!
জর্জ 2

হাঃ হাঃ হাঃ! আমি টাইম আউটটি মাত্র 1 মিনিটে নির্ধারণ করার পরামর্শ দেব না। এটা ব্যবহার্যতা হারাতে হবে!
ব্রায়ান ম্যাকার্থি

3
আমি একটি সংক্ষিপ্ত সময়সীমার প্রয়োজনটি পুরোপুরি বুঝতে পারি understand আমার ক্ষেত্রে এটি সাইটের ব্যবহারযোগ্যতা পরীক্ষা করা যদি সেশনটির সময় শেষ হয়ে যায় এবং ব্যবহারকারী ফিরে আসার পরে এটি কীভাবে প্রতিক্রিয়া দেখায়। এটি পরীক্ষা করা শক্ত যে সেশনের সময়সীমাটি দ্রুত না ঘটলে ডিবাগ করার সময়
ব্রেট ওয়েবার

উত্তর:


322

আপনি যদি 20 মিনিটের সময়সীমা নির্ধারণ করতে চান তবে এই জাতীয় কিছু ব্যবহার করুন:

    <configuration>
      <system.web>
         <sessionState timeout="20"></sessionState>
      </system.web>
    </configuration>

16
20 মিনিট বা ঘন্টা? (সময়সীমা = "20")
মুহাম্মদ আওইস


50

timeoutঅ্যাট্রিবিউটে আপনি মানটি নির্ধারণ করছেন সেশনটির সময়সীমা মান সেট করার সঠিক উপায়গুলির মধ্যে একটি।

timeoutঅ্যাট্রিবিউট নির্দিষ্ট করে কয়েক মিনিট সংখ্যা একটি সেশন অলস আগেই পরিত্যক্ত হতে পারে। এই বৈশিষ্ট্যের জন্য ডিফল্ট মান 20 হয় 20

এই গুণকে 1 এর মান নির্ধারণ করে আপনি সেশনটি নিষ্ক্রিয় হওয়ার 1 মিনিটের মধ্যে রেখে দেওয়ার সিদ্ধান্ত নিয়েছেন।

এটি পরীক্ষা করতে, একটি সাধারণ এসপেক্স পৃষ্ঠা তৈরি করুন, এবং এই কোডটি পেজ_ল্ড ইভেন্টে লিখুন,

Response.Write(Session.SessionID);

একটি ব্রাউজার খুলুন এবং এই পৃষ্ঠায় যান। একটি সেশন আইডি মুদ্রণ করা হবে। পাস হতে এক মিনিট অপেক্ষা করুন, তারপরে রিফ্রেশ করুন। সেশন আইডি পরিবর্তন হবে।

এখন, যদি আমার অনুমানটি সঠিক হয়, আপনি সেশন সময় শেষ হওয়ার সাথে সাথেই আপনার ব্যবহারকারীদের লগ আউট করতে চান। এটি করার জন্য, আপনি একটি লগইন পৃষ্ঠাটি ছাঁটাই করতে পারেন যা ব্যবহারকারীর শংসাপত্রগুলি যাচাই করবে, এবং এর মতো একটি সেশন ভেরিয়েবল তৈরি করবে -

Session["UserId"] = 1;

এখন, আপনাকে এই ভেরিয়েবলটির জন্য প্রতিটি পৃষ্ঠায় একটি চেক করতে হবে -

if(Session["UserId"] == null)
    Response.Redirect("login.aspx");

এটি কীভাবে কাজ করবে তার খালি হাড়ের উদাহরণ।

তবে, আপনার উত্পাদন মানের সুরক্ষিত অ্যাপ্লিকেশনগুলি তৈরি করার জন্য, এএসপি.এনইটি সরবরাহিত ভূমিকা এবং সদস্যতা ক্লাসগুলি ব্যবহার করুন । তারা ফর্ম-ভিত্তিক প্রমাণীকরণ সরবরাহ করে যা আপনি ব্যবহার করার চেষ্টা করছেন সাধারণ সেশন-ভিত্তিক প্রমাণীকরণের চেয়ে অনেক বেশি নির্ভরযোগ্য।


দুর্দান্ত পরামর্শ ... রেসপন্স.উরাইট (সেশন.সেশনআইডি) দিয়ে পরীক্ষা করার আগে প্রথমে একটি সেশন ভেরিয়েবল সেট করা নিশ্চিত করুন; অন্যান্য বুদ্ধিমান প্রতিবার আপনি রিফ্রেশ করুন এটি একটি নতুন আইডি দিয়ে রিফ্রেশ হবে।
ক্রিস ক্যাটিগনি

1

আপনি যদি এমভিসি ব্যবহার করে থাকেন তবে আপনি এটিকে ওয়েব অ্যাপ্লিকেশনটির রুট ডিরেক্টরিতে ওয়েবকনফিগ ফাইলে রেখেছেন, ভিউ ডিরেক্টরিতে ওয়েবকনফিগ নয়। এটি সিস্টেমে থাকাও দরকার we ওয়েবে নোড, জর্জ 2 এর মতো নয় তার প্রশ্নে বলেছেন: "আমি সিস্টেমে লিখেছি ig ওয়েবকনফাইগের ওয়েব বিভাগে"

সময়সীমা পরামিতি মান মিনিট প্রতিনিধিত্ব করে।

সেশনস্টেট উপাদানটিতে অন্যান্য বৈশিষ্ট্যও সেট করা যেতে পারে। আপনি এখানে তথ্য খুঁজে পেতে পারেন: ডকস.মাইক্রোসফট.কম সেশন স্টেট

<configuration>
   <system.web>
      <sessionState timeout="20"></sessionState>
   </system.web>
</configuration>

এরপরে আপনি নিম্নলিখিত পদ্ধতিটি যুক্ত করে গ্লোবাল.এক্সএক্স ফাইলটিতে একটি নতুন সেশনের সূচনা করতে পারবেন:

void Session_Start(object sender, EventArgs e)
{
    if (Session.IsNewSession)
    {
        //do things that need to happen
        //when a new session starts.
    }
}

0

এটি এতে ব্যবহার করুন web.config:

<sessionState 

  timeout="20" 
/>

30
আপনার তালিকাভুক্ত বেশিরভাগ গুণাবলী আপনার প্রয়োজন নেই, ঠিক timeoutসত্যই। stateConnectionStringএবং sqlConnectionStringযখন উপেক্ষা করা হয় mode="InProc", এবং মান modeএবং cookielessতাদের ডিফল্ট মানে সেট করা আছে। সুতরাং, এটি সত্যিই ওল্ফওয়ার্ড এর উত্তর থেকে বিরত।
15

0

যদি এটি কাজ করে না web.config, আপনার এটি আইআইএস থেকে সেট করা দরকার।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.