首页 > 解决方案 > 旧 ASP.NET:通过 ipv4 为每个页面浏览或每个用户旋转/随机播放/随机化一个变量

问题描述

我们尝试修复旧的 ASP.NET 项目。只获得了 PHP 经验。

而不是下面的,需要从列表中随机选择“键”,以便每个“键”的使用频率大致相同。

string sKey = ConfigurationManager.AppSettings["Key"];

(参考web.config文件。)

例如,每天有 10000 人使用该网站,浏览量为 20000。现在有 20 个密钥*,每个密钥应用于大约 500 个用户**或大约 1000 次浏览量**。

*(目前在静态文件“keys.txt”中,每行一个键)

**(用户只能通过他们的 IPv4 来区分,但完全随机也可以)

标签: c#asp.net

解决方案


您可以通过在键数范围内创建一个随机数并使用随机选择的一个来做到这一点。

using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Web.UI.WebControls;
using System.Linq;

//list to hold the keys
List<string> keys = new List<string>();

//dummy data
keys = Enumerable.Range(1, 20).Select(i => "Key_" + i).ToList();

//or read the file from disk
string path = Server.MapPath("keys.txt");
if (File.Exists(path))
{
    keys = File.ReadAllLines(path).ToList();
}

//create a random number and select the key
Random rnd = new Random();
string key = keys[rnd.Next(0, keys.Count)];

推荐阅读